AGB FAQ, Sound

FAQ MENU

## Sound

[Q001] With the IS-AGB-MIDI, how do I specify the timbre and create sounds for timbres' input to a voice group other than using voice group "0" from an external sequencer?
[Q002] When I use SoundDriver-(), the system hangs!
[Q003] Are the IS-AGB-MIDI hardware specifications publicly available?
[Q004] When I try setting the PCM volume to the maximum value of 15, continuous noise is generated.
[Q005] How do I set the fundamental tone key in the AGB Music Player?
[Q006] After I use m4aMPlayFadeOut(), I can't restart the melody, even if I use m4aMPlayContinue().
[Q007] When I call m4aSoundMain() inside an interrupt, the system freezes.
[Q008] How do I reference the values set for reverb and master volume in the Music Player?
[Q009] When the melody is halted during playback of a prolonged sound effect like the engine sound in the sample, the melody (sound effect) does not resume, even though the melody restart process has been executed.
[Q010]CGB-compatible sounds do not play as well as I thought they would.
[Q011] The Music Player AGB2000 manual talks about occupying DMA1, DMA2 & Timer 0, but is anything done with those interrupts?
[Q012] When I overlay a single bullet shot sound effect while playing BGM or looped data, the BGM's reverb disappears.
[Q013]The sound effect priority does not work with the Music Player AGB2000. All the sounds that come out later are cut. Why does this happen?

### [Q001]

With the IS-AGB-MIDI, how do I specify the timbre and create sounds for timbres' input to a voice group other than using voice group "0" from an external sequencer?

### [A001]

Please use the following method:
1. Specify the vgroup for the mks4agb.ini MIDI input performance setting.

2. Specify MIDI:VGR for display only during MIDI input performances on the simple monitor.
You cannot specify vgroup from an external sequencer.

[TOP]

### [Q002]

When I use SoundDriver-(), the system hangs!

### [A002]

Are you using the AGB Target Board (TS2)?
The sound drivers included in the TS2 system ROM are based on the old specifications, so please do not use them.
The sound drivers included in the system ROM of the Development AGB (TS4) are based on the latest specifications, so if you are going to use sound drivers please use a Development AGB (TS4).

[TOP]

### [Q003]

I want to use IS-AGB-MIDI with programs other than Music PlayerAGB2000. Are the hardware specifications publicly available?

### [A003]

Sorry, but for various reasons the IS-AGB-MIDI specifications have not been made public.

[TOP]

### [Q004]

When I try setting the PCM volume to the maximum value of 15, continuous noise is generated.

### [A004]

With direct sound, the value of the sound volume can overflow when a number of channels of waveform data are added together. It is not practical to avoid this overflow when coding the program because it takes too much execution time. If you think that overflow will occur, then lower the sound volume ahead of time.
There is no fixed value for lowering the volume. Determine the most appropriate value for the given game. Keep in mind the volume of the waveform data, the melody data being used, and the way that the melodies overlap. We recommend using the initial value of mks4agb.ini and controlling them with the volume of the MIDI data, or by the velocity.

[TOP]

### [Q005]

How do I set the fundamental tone key?

### [A005]

The procedure differs depending on which waveform editing software you are using. Almost none of the Windows software programs provide a way to specify the fundamental tone key (the original pitch.) Accordingly, AIFF files output by these programs are automatically set with a default value of "60" by the Music Player AGB2000. Moreover, almost none of the Windows programs support the loop function. (Music Player 2000 converts loop to "1 Shot".)
Regarding Macintosh software, the following programs have been confirmed to support setting the original pitch.
- Peak (Bias)
- SoundEdit16 (Macromedia)
- Alchemy KORG (no longer distributed)
Please read the product manual to see how to set the fundamental tone key (original pitch) with each program.

[TOP]

### [Q006]

After I use m4aMPlayFadeOut(), I can't restart the melody, even if I use m4aMPlayContinue().

### [A006]

The m4aMPlayFadeOut() function is a process that leads to a total halt, terminating the fadeout and all tracks when the volume reaches zero. This is convenient if you want the main program to wait for the end of the fadeout and then move to the next process. If you need a function that behaves like m4aMPlayFadeOutPause(), you can create this using m4aMPlayVolumeControl() to periodically lower the overall volume. m4aMPlayFadeOut() also works in this way to lower the volume overall.

[TOP]

### [Q007]

When I call m4aSoundMain() inside an interrupt, the system freezes.

### [A007]

It could be that the stack used for the IRQ mode is causing an overflow. Try expanding the stack region used for the IRQ mode in crt0.s, using the following procedure.
sp_usr: .word WRAM_END - 0x1a0
sp_irq: .word WRAM_END - 0x60

[TOP]

### [Q008]

How do I reference the values set for reverb and master volume in the Music Player?

### [A008]

To reference the values for reverb and master volume, see the following variables.
Reverb............m4a_sound.reverb
Master Volume.....m4a_sound.masvol

[TOP]

### [Q009]

When the melody is halted during playback of a prolonged sound effect like the engine sound in the sample, the melody (sound effect) does not resume, even though the melody restart process has been executed.

### [A009]

For sound effects like the engine sound, the Key On information is located only at the front of the melody, so you need to call the beginning of the melody (m4aSongNumStart ) again.

[TOP]

### [Q010]

CGB-compatible sounds do not play as well as I thought they would.

### [A010]

You can increase the reproduction rate of the CGB-compatible sounds by setting the PWM control to a sampling frequency of 262.144KHz and an amplitude resolution to 6 bits. For further details, see section 10.8 Sound PWM Control in the Programming Manual

[TOP]

### [Q011]

The Music Player AGB2000 manual talks about using DMA1, DMA2 & Timer 0, but is anything done with those interrupts?

### [A011]

No, the interrupts are not used. By matching the timing to V-Sync, the system operates without using them.

[TOP]

### [Q012]

When I overlay a single bullet shot sound effect while playing BGM or looped data, the BGM's reverb disappears.

### [A012]

According to the sound driver specifications, if the background music has reverb and a sound effect with reverb is produced while the BGM is being produced, then the value of the BGM's reverb is updated to the value of the sound effect's reverb. The way around this situation is to use the sound effect with its reverb value set to "off", rather than to reverb 0.

[TOP]

### [Q013]

The sound effect priority does not work with Music Player 2000. All the sounds that are played last are "stolen". Why does this happen?

### [A013]

When the same sound source is used by different players, the first few sounds that come out have priority over the sounds that come later. The music player with the highest priority will be used first. When using the same player, however, the "melody start" is not related to priority and the sounds that are played last will always start.
If you want to determine the priority at the time a melody starts, perform an independent check before calling the Music Player 2000 Start Routine. At that time, the priority of the currently playing melody is (&ampm4a_mplay???) prio and the priority of the melody that is about to start is SongName prio. You can use this to make the determination.

[TOP]

D.C.N. AGB-06-0027-001A1 (2/21/01)
© 2001 Nintendo of America Inc.